import axios from 'axios'
import auth from './auth';
// 创建 axios 实例（可根据需求配置多个实例）
const service = axios.create({
  baseURL: 'http://localhost:3006/api', // 统一设置接口基础地址
  timeout: 5000, // 请求超时时间（5秒）
  headers: {
    'Content-Type': 'application/json' // 默认请求头（可根据接口要求调整）
  }
})

// 请求拦截器（发送请求前执行）
service.interceptors.request.use(
  (config) => {
    // 示例：若需要携带 token，可在此处添加（需配合登录功能）
    const token = auth.getToken();
    console.log(token);
    
    if (token) {
      config.headers.Authorization = `Bearer ${token}`;
    }
    // const token = localStorage.getItem('token')
    // if (token) config.headers.Authorization = `Bearer ${token}`
    return config
  },
  (error) => {
    // 请求错误处理（如网络问题）
    console.error('请求拦截器错误:', error)
    return Promise.reject(error)
  }
)

// 响应拦截器（接收响应后执行）
service.interceptors.response.use(
  (response) => {
    // 示例：若接口返回格式为 { code: 200, data: ... }，可直接返回 data
    // 若接口返回原始数据，可删除此逻辑
    const res = response.data
    console.log(res);
    
    // if (res.code !== 200) { // 根据实际接口状态码调整判断条件
    //   console.error('接口响应异常:', res.message || '未知错误')
    //   return Promise.reject(new Error(res.message || '请求失败'))
    // }
    return res // 返回有效数据部分
  },
  (error) => {
    // 处理 HTTP 状态码错误（如 404/500 等）
    const status = error.response?.status || 500
    // auth.removeToken();
    // window.location.href = '/login';
    console.error(`HTTP 错误 ${status}:`, error.response?.data?.message || error.message)
    return Promise.reject(error)
  }
)

export default service // 导出实例供其他模块使用